/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package TapestryModel.util;

import TapestryModel.Activation;
import TapestryModel.ActivationMapping;
import TapestryModel.Attribute;
import TapestryModel.ContentAttirbute;
import TapestryModel.ContentData;
import TapestryModel.ContentObject;
import TapestryModel.Data;
import TapestryModel.Entity;
import TapestryModel.EntityData;
import TapestryModel.Form;
import TapestryModel.Link;
import TapestryModel.LinkMapping;
import TapestryModel.Page;
import TapestryModel.ParamLink;
import TapestryModel.Reference;
import TapestryModel.SimpleLink;
import TapestryModel.Site;
import TapestryModel.TapestryModelPackage;
import TapestryModel.Value;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see TapestryModel.TapestryModelPackage
 * @generated
 */
public class TapestryModelAdapterFactory extends AdapterFactoryImpl {
    /**
     * The cached model package.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected static TapestryModelPackage modelPackage;

    /**
     * Creates an instance of the adapter factory.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    public TapestryModelAdapterFactory() {
        if (modelPackage == null) {
            modelPackage = TapestryModelPackage.eINSTANCE;
        }
    }

    /**
     * Returns whether this factory is applicable for the type of the object.
     * <!-- begin-user-doc -->
     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
     * <!-- end-user-doc -->
     * @return whether this factory is applicable for the type of the object.
     * @generated
     */
    @Override
    public boolean isFactoryForType(Object object) {
        if (object == modelPackage) {
            return true;
        }
        if (object instanceof EObject) {
            return ((EObject)object).eClass().getEPackage() == modelPackage;
        }
        return false;
    }

    /**
     * The switch that delegates to the <code>createXXX</code> methods.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    protected TapestryModelSwitch<Adapter> modelSwitch =
        new TapestryModelSwitch<Adapter>() {
            @Override
            public Adapter caseSite(Site object) {
                return createSiteAdapter();
            }
            @Override
            public Adapter casePage(Page object) {
                return createPageAdapter();
            }
            @Override
            public Adapter caseActivation(Activation object) {
                return createActivationAdapter();
            }
            @Override
            public Adapter caseActivationMapping(ActivationMapping object) {
                return createActivationMappingAdapter();
            }
            @Override
            public Adapter caseForm(Form object) {
                return createFormAdapter();
            }
            @Override
            public Adapter caseLink(Link object) {
                return createLinkAdapter();
            }
            @Override
            public Adapter caseSimpleLink(SimpleLink object) {
                return createSimpleLinkAdapter();
            }
            @Override
            public Adapter caseParamLink(ParamLink object) {
                return createParamLinkAdapter();
            }
            @Override
            public Adapter caseLinkMapping(LinkMapping object) {
                return createLinkMappingAdapter();
            }
            @Override
            public Adapter caseObject(TapestryModel.Object object) {
                return createObjectAdapter();
            }
            @Override
            public Adapter caseEntity(Entity object) {
                return createEntityAdapter();
            }
            @Override
            public Adapter caseEnum(TapestryModel.Enum object) {
                return createEnumAdapter();
            }
            @Override
            public Adapter caseValue(Value object) {
                return createValueAdapter();
            }
            @Override
            public Adapter caseData(Data object) {
                return createDataAdapter();
            }
            @Override
            public Adapter caseEntityData(EntityData object) {
                return createEntityDataAdapter();
            }
            @Override
            public Adapter caseContentData(ContentData object) {
                return createContentDataAdapter();
            }
            @Override
            public Adapter caseReference(Reference object) {
                return createReferenceAdapter();
            }
            @Override
            public Adapter caseAttribute(Attribute object) {
                return createAttributeAdapter();
            }
            @Override
            public Adapter caseContentObject(ContentObject object) {
                return createContentObjectAdapter();
            }
            @Override
            public Adapter caseContentAttirbute(ContentAttirbute object) {
                return createContentAttirbuteAdapter();
            }
            @Override
            public Adapter defaultCase(EObject object) {
                return createEObjectAdapter();
            }
        };

    /**
     * Creates an adapter for the <code>target</code>.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @param target the object to adapt.
     * @return the adapter for the <code>target</code>.
     * @generated
     */
    @Override
    public Adapter createAdapter(Notifier target) {
        return modelSwitch.doSwitch((EObject)target);
    }


    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Site <em>Site</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Site
     * @generated
     */
    public Adapter createSiteAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Page <em>Page</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Page
     * @generated
     */
    public Adapter createPageAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Activation <em>Activation</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Activation
     * @generated
     */
    public Adapter createActivationAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.ActivationMapping <em>Activation Mapping</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.ActivationMapping
     * @generated
     */
    public Adapter createActivationMappingAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Form <em>Form</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Form
     * @generated
     */
    public Adapter createFormAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Link <em>Link</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Link
     * @generated
     */
    public Adapter createLinkAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.SimpleLink <em>Simple Link</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.SimpleLink
     * @generated
     */
    public Adapter createSimpleLinkAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.ParamLink <em>Param Link</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.ParamLink
     * @generated
     */
    public Adapter createParamLinkAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.LinkMapping <em>Link Mapping</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.LinkMapping
     * @generated
     */
    public Adapter createLinkMappingAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Object <em>Object</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Object
     * @generated
     */
    public Adapter createObjectAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Entity <em>Entity</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Entity
     * @generated
     */
    public Adapter createEntityAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Enum <em>Enum</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Enum
     * @generated
     */
    public Adapter createEnumAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Value <em>Value</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Value
     * @generated
     */
    public Adapter createValueAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Data <em>Data</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Data
     * @generated
     */
    public Adapter createDataAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.EntityData <em>Entity Data</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.EntityData
     * @generated
     */
    public Adapter createEntityDataAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.ContentData <em>Content Data</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.ContentData
     * @generated
     */
    public Adapter createContentDataAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Reference <em>Reference</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Reference
     * @generated
     */
    public Adapter createReferenceAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.Attribute <em>Attribute</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.Attribute
     * @generated
     */
    public Adapter createAttributeAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.ContentObject <em>Content Object</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.ContentObject
     * @generated
     */
    public Adapter createContentObjectAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for an object of class '{@link TapestryModel.ContentAttirbute <em>Content Attirbute</em>}'.
     * <!-- begin-user-doc -->
     * This default implementation returns null so that we can easily ignore cases;
     * it's useful to ignore a case when inheritance will catch all the cases anyway.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @see TapestryModel.ContentAttirbute
     * @generated
     */
    public Adapter createContentAttirbuteAdapter() {
        return null;
    }

    /**
     * Creates a new adapter for the default case.
     * <!-- begin-user-doc -->
     * This default implementation returns null.
     * <!-- end-user-doc -->
     * @return the new adapter.
     * @generated
     */
    public Adapter createEObjectAdapter() {
        return null;
    }

} //TapestryModelAdapterFactory
